home *** CD-ROM | disk | FTP | other *** search
/ Personal Computer World 2009 February / PCWFEB09.iso / Software / Linux / Kubuntu 8.10 / kubuntu-8.10-desktop-i386.iso / casper / filesystem.squashfs / usr / src / linux-headers-2.6.27-7 / scripts / setlocalversion < prev    next >
Encoding:
Text File  |  2008-10-09  |  1.5 KB  |  66 lines

  1. #!/bin/sh
  2. # Print additional version information for non-release trees.
  3.  
  4. usage() {
  5.     echo "Usage: $0 [srctree]" >&2
  6.     exit 1
  7. }
  8.  
  9. cd "${1:-.}" || usage
  10.  
  11. # Check for git and a git repo.
  12. if head=`git rev-parse --verify HEAD 2>/dev/null`; then
  13.     # Do we have an untagged version?
  14.     if git name-rev --tags HEAD | grep -E '^HEAD[[:space:]]+(.*~[0-9]*|undefined)$' > /dev/null; then
  15.         if tag=`git describe 2>/dev/null`; then
  16.             echo $tag | awk -F- '{printf("-%05d-%s", $(NF-1),$(NF))}'
  17.         fi
  18.     fi
  19.  
  20.     # Are there uncommitted changes?
  21.     git update-index --refresh --unmerged > /dev/null
  22.     if git diff-index --name-only HEAD | grep -v "^scripts/package" \
  23.         | read dummy; then
  24.         printf '%s' -dirty
  25.     fi
  26.  
  27.     # All done with git
  28.     exit
  29. fi
  30.  
  31. # Check for mercurial and a mercurial repo.
  32. if hgid=`hg id 2>/dev/null`; then
  33.     tag=`printf '%s' "$hgid" | cut -d' ' -f2`
  34.  
  35.     # Do we have an untagged version?
  36.     if [ -z "$tag" -o "$tag" = tip ]; then
  37.         id=`printf '%s' "$hgid" | sed 's/[+ ].*//'`
  38.         printf '%s%s' -hg "$id"
  39.     fi
  40.  
  41.     # Are there uncommitted changes?
  42.     # These are represented by + after the changeset id.
  43.     case "$hgid" in
  44.         *+|*+\ *) printf '%s' -dirty ;;
  45.     esac
  46.  
  47.     # All done with mercurial
  48.     exit
  49. fi
  50.  
  51. # Check for svn and a svn repo.
  52. if rev=`svn info 2>/dev/null | grep '^Revision'`; then
  53.     rev=`echo $rev | awk '{print $NF}'`
  54.     changes=`svn status 2>/dev/null | grep '^[AMD]' | wc -l`
  55.  
  56.     # Are there uncommitted changes?
  57.     if [ $changes != 0 ]; then
  58.         printf -- '-svn%s%s%s' "$rev" -dirty "$changes"
  59.     else
  60.         printf -- '-svn%s' "$rev"
  61.     fi
  62.  
  63.     # All done with svn
  64.     exit
  65. fi
  66.